package com.wx.finance.biz.dto.vo;


import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class GetVoucherVo {
    /**
     *
     */
    private Long id;

    /**
     * 凭证字配置id
     */
    private Long voucherWordConfigId;

    private String voucherWord;

    /**
     * 凭证号
     */
    private Integer voucherNumber;

    /**
     * 凭证日期
     */
    private Date voucherDate;

    /**
     * 单据数量
     */
    private Integer documentNum;

    /**
     * 凭证总金额
     */
    private BigDecimal totalAmount;

    /**
     * 备注
     */
    private String notes;

    private List<VoucherSubjectDetailVo> voucherSubjectDetailVoList;

    /**
     * 凭证科目明细
     */
    @Data
    public static class VoucherSubjectDetailVo {
        private Long id;

        private Long voucherId;

        private String summary;

        private Long subjectId;

        private String subjectCode;

        private String subjectFullName;

        private String subjectName;

        private String showSubjectName;

        private Long currencyConfigId;

        private String currencyConfigName;

        private BigDecimal exchangeRate;

        private BigDecimal originalCurrency;

        private Integer subjectNum;

        private BigDecimal subjectUnitPrice;

        private BigDecimal balance;

        private BigDecimal debitAmount;

        private BigDecimal creditAmount;

        private Boolean enableNumberCalculateConfig;

        private Boolean enableAssistCalculateConfigs;

        private Boolean enableForeignCurrencyConfig;

        private List<GetVoucherVo.AssistCalculateConfigVo> assistCalculateConfigs;

        private List<GetVoucherVo.ForeignCurrencyConfigVo> foreignCurrencyConfig;
    }

    /**
     * 外币核算配置
     */
    @Data
    public static class ForeignCurrencyConfigVo {

        private Long id;

        private String name;

        private BigDecimal exchangeRate;

        private Boolean baseCurrencyFlag;
    }

    /**
     * 设置的辅助核算
     */
    @Data
    public static class AssistCalculateConfigVo {
        private Long subjectId;


        private Long assistCalculateCateId;


        private Long assistCalculateId;


        private String assistCalculateName;
    }
}
